package com.eduplatform.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.eduplatform.dto.AIPaperGenerateDTO;
import com.eduplatform.dto.PaperDTO;
import com.eduplatform.entity.Paper;

import java.util.List;

/**
 * 试卷Service接口
 */
public interface PaperService extends IService<Paper> {

    /**
     * 分页查询试卷列表
     *
     * @param page           页码
     * @param size           每页大小
     * @param subjectId      学科ID
     * @param educationLevel 教育阶段
     * @param status         状态
     * @param keyword        关键词
     * @return 分页结果
     */
    IPage<PaperDTO> pagePapers(int page, int size, Long subjectId, Integer educationLevel, Integer status,
            String keyword);

    /**
     * 获取试卷详情
     *
     * @param id 试卷ID
     * @return 试卷详情
     */
    PaperDTO getPaperDetail(Long id);

    /**
     * 添加试卷
     *
     * @param paperDTO 试卷信息
     * @return 是否成功
     */
    boolean addPaper(PaperDTO paperDTO);

    /**
     * 更新试卷
     *
     * @param paperDTO 试卷信息
     * @return 是否成功
     */
    boolean updatePaper(PaperDTO paperDTO);

    /**
     * 删除试卷
     *
     * @param id 试卷ID
     * @return 是否成功
     */
    boolean deletePaper(Long id);

    /**
     * 发布试卷
     *
     * @param id 试卷ID
     * @return 是否成功
     */
    boolean publishPaper(Long id);

    /**
     * 使用AI生成试卷
     *
     * @param generateDTO 生成参数
     * @param creatorId   创建人ID
     * @return 生成的试卷
     */
    PaperDTO generateAIPaper(AIPaperGenerateDTO generateDTO, Long creatorId);

    /**
     * 获取AI支持的学科列表
     * 
     * @return 学科列表
     */
    List<Object> getAISupportedSubjects();
}